<?php

/**
 * Rejestr danych
 * 
 * Klasa statyczna pozwalająca na globalne składowanie danych
 *
 */
class Rapide_Registry implements Rapide_Registry_Interface
{
	private static $_aRegistry = array();

	/**
	 * Zwraca wartość dla podanego parametru
	 *
	 * @param string $sEntry
	 * @return mixed
	 * @throws Rapide_Registry_Exception jeżeli parametr nie istnieje
	 */
	public static function get($sEntry)
	{
		if(!self::has($sEntry))
		{
			$sError = sprintf('Entry %s does not exist', $sEntry);
			throw new Rapide_Registry_Exception($sError);
		}

		return self::$_aRegistry[$sEntry];
	}

	/**
	 * Ustawia wartość dla podanego parametru
	 *
	 * @param string $sEntry
	 * @param mixed $mValue
	 */
	public static function set($sEntry, $mValue)
	{
		self::$_aRegistry[$sEntry] = $mValue;
	}

	/**
	 * Sprawdza, czy podany parametr istnieje
	 *
	 * @param string $sEntry
	 * @return bool
	 */
	public static function has($sEntry)
	{
		return isset(self::$_aRegistry[$sEntry]);
	}
}

?>